import { http } from '@/utils/request'
import config from '@/utils/request'

export const uploadFile = (filePath) => {
    const token = uni.getStorageSync('token');
    if (!token) {
      uni.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return Promise.reject({ errMsg: '未登录状态' });
    }
    return new Promise((resolve, reject) => {
      uni.uploadFile({
        url: `${config.baseURL}/api/upload`,
        filePath: filePath,
        name: 'file',
        header: {
          'Authorization': 'Bearer ' + token
        },
        success: (res) => {
          console.log('上传响应状态码:', res.statusCode);
          console.log('上传响应内容:', res.data);
          
          if (res.statusCode === 200 && res.data) {
            try {
              const data = JSON.parse(res.data);
              if (data && data.code === 200) {
                resolve(data);
              } else {
                const errorMsg = data?.message || '业务逻辑错误';
                reject({ errMsg: errorMsg });
              }
            } catch (e) {
              console.error('解析响应失败:', e);
              reject({ errMsg: '响应数据解析失败' });
            }
          } else if (res.statusCode === 403) {
            reject({ errMsg: '没有上传权限，请检查登录状态' });
          } else {
            reject({ errMsg: `上传失败 [${res.statusCode}]` });
          }
        },
        fail: (err) => {
          console.error('上传请求失败:', err);
          reject(err);
        }
      });
    });
}


